<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>AXI muckbucket: axi_pipelined_reads_seq Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">AXI muckbucket
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classaxi__pipelined__reads__seq-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">axi_pipelined_reads_seq Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Backdoor memory writes, then reads from memory over AXI.  
 <a href="classaxi__pipelined__reads__seq.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for axi_pipelined_reads_seq:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__pipelined__reads__seq__inherit__graph.png" border="0" usemap="#axi__pipelined__reads__seq_inherit__map" alt="Inheritance graph"/></div>
<map name="axi__pipelined__reads__seq_inherit__map" id="axi__pipelined__reads__seq_inherit__map">
<area shape="rect" id="node2" href="classaxi__seq.html" title="Writes to memory over AXI, backdoor readback, then AXI readback. " alt="" coords="55,95,122,121"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for axi_pipelined_reads_seq:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__pipelined__reads__seq__coll__graph.png" border="0" usemap="#axi__pipelined__reads__seq_coll__map" alt="Collaboration graph"/></div>
<map name="axi__pipelined__reads__seq_coll__map" id="axi__pipelined__reads__seq_coll__map">
<area shape="rect" id="node2" href="classaxi__seq.html" title="Writes to memory over AXI, backdoor readback, then AXI readback. " alt="" coords="77,193,143,219"/>
<area shape="rect" id="node4" href="classmemory.html" title="Extremely simple memory model with just write() and read() methods. " alt="" coords="197,89,266,115"/>
<area shape="rect" id="node6" href="classaxi__pipelined__reads__seq.html#structaxi__pipelined__reads__seq_1_1mem__chk__s" title="axi_pipelined_reads\l_seq::mem_chk_s" alt="" coords="167,185,303,227"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:structaxi__pipelined__reads__seq_1_1mem__chk__s"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__pipelined__reads__seq.html#structaxi__pipelined__reads__seq_1_1mem__chk__s">mem_chk_s</a></td></tr>
<tr class="separator:structaxi__pipelined__reads__seq_1_1mem__chk__s"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a923c6805e7e52ab4c7b8c4949d759f52"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__pipelined__reads__seq.html#a923c6805e7e52ab4c7b8c4949d759f52">uvm_object_utils</a> (<a class="el" href="classaxi__pipelined__reads__seq.html">axi_pipelined_reads_seq</a>) <a class="el" href="classaxi__seq__item.html">axi_seq_item</a> read_item[]</td></tr>
<tr class="separator:a923c6805e7e52ab4c7b8c4949d759f52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b7fbcc8488d3c4cc3014039bc5f52ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__pipelined__reads__seq.html#a5b7fbcc8488d3c4cc3014039bc5f52ff">new</a> (string name=&quot;axi_pipelined_reads_seq&quot;)</td></tr>
<tr class="memdesc:a5b7fbcc8488d3c4cc3014039bc5f52ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a5b7fbcc8488d3c4cc3014039bc5f52ff">More...</a><br /></td></tr>
<tr class="separator:a5b7fbcc8488d3c4cc3014039bc5f52ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e895a6b63903816945053861cd6a86d"><td class="memItemLeft" align="right" valign="top">task&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__pipelined__reads__seq.html#a3e895a6b63903816945053861cd6a86d">body</a> ()</td></tr>
<tr class="memdesc:a3e895a6b63903816945053861cd6a86d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does all the work.  <a href="#a3e895a6b63903816945053861cd6a86d">More...</a><br /></td></tr>
<tr class="separator:a3e895a6b63903816945053861cd6a86d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6716084f233f4a79b6ef376feb63673"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__pipelined__reads__seq.html#ae6716084f233f4a79b6ef376feb63673">response_handler</a> (uvm_sequence_item response)</td></tr>
<tr class="memdesc:ae6716084f233f4a79b6ef376feb63673"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles write responses, including verifying memory via backdoor reads.  <a href="#ae6716084f233f4a79b6ef376feb63673">More...</a><br /></td></tr>
<tr class="separator:ae6716084f233f4a79b6ef376feb63673"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a6500dac2eb76a6f61b6b8190abbf3c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__seq.html#a0a6500dac2eb76a6f61b6b8190abbf3c">uvm_object_utils</a> (<a class="el" href="classaxi__seq.html">axi_seq</a>) const int clearmemory=0</td></tr>
<tr class="separator:a0a6500dac2eb76a6f61b6b8190abbf3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acce4aa5766828b5f16357fef3be9619b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__seq.html#acce4aa5766828b5f16357fef3be9619b">set_transaction_count</a> (int count)</td></tr>
<tr class="memdesc:acce4aa5766828b5f16357fef3be9619b"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many transactions?  <a href="#acce4aa5766828b5f16357fef3be9619b">More...</a><br /></td></tr>
<tr class="separator:acce4aa5766828b5f16357fef3be9619b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e1d96cf1d872bcc860464bfbc72c8e1"><td class="memItemLeft" align="right" valign="top">bit&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__seq.html#a3e1d96cf1d872bcc860464bfbc72c8e1">compare_items</a> (ref <a class="el" href="classaxi__seq__item.html">axi_seq_item</a> write_item, ref <a class="el" href="classaxi__seq__item.html">axi_seq_item</a> read_item)</td></tr>
<tr class="memdesc:a3e1d96cf1d872bcc860464bfbc72c8e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares the write-item with the corresponding read_item.  <a href="#a3e1d96cf1d872bcc860464bfbc72c8e1">More...</a><br /></td></tr>
<tr class="separator:a3e1d96cf1d872bcc860464bfbc72c8e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a5ab66fa2f78ef1e5f6410b1083f5724b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__pipelined__reads__seq.html#a5ab66fa2f78ef1e5f6410b1083f5724b">transaction_id</a></td></tr>
<tr class="separator:a5ab66fa2f78ef1e5f6410b1083f5724b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af73ced115f89c70852afebdf85ca90c4"><td class="memItemLeft" align="right" valign="top">event&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__pipelined__reads__seq.html#af73ced115f89c70852afebdf85ca90c4">reads_done</a></td></tr>
<tr class="separator:af73ced115f89c70852afebdf85ca90c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba53dc6840f1df556bb3f96211da2bda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classaxi__pipelined__reads__seq.html#structaxi__pipelined__reads__seq_1_1mem__chk__s">mem_chk_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__pipelined__reads__seq.html#aba53dc6840f1df556bb3f96211da2bda">mem_chk_array</a> [*]</td></tr>
<tr class="separator:aba53dc6840f1df556bb3f96211da2bda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35e2ef3dac762ca6cebfb3e7fee1fe8d"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__seq.html#a35e2ef3dac762ca6cebfb3e7fee1fe8d">window_size</a> = 0x1_0000</td></tr>
<tr class="separator:a35e2ef3dac762ca6cebfb3e7fee1fe8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e8ea36ae847bab553e4b01c85a18f32"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__seq.html#a2e8ea36ae847bab553e4b01c85a18f32">xfers_to_send</a> = 1</td></tr>
<tr class="separator:a2e8ea36ae847bab553e4b01c85a18f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad32f714b2d472244aad98f0c7fd5018b"><td class="memItemLeft" align="right" valign="top">bit&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__seq.html#ad32f714b2d472244aad98f0c7fd5018b">valid</a> []</td></tr>
<tr class="separator:ad32f714b2d472244aad98f0c7fd5018b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeeb48cb95c098c51ae3aada90ecd50e2"><td class="memItemLeft" align="right" valign="top">bit&lt; 2:0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__seq.html#aeeb48cb95c098c51ae3aada90ecd50e2">max_burst_size</a></td></tr>
<tr class="separator:aeeb48cb95c098c51ae3aada90ecd50e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedd71f30b38e538b02c93c20bf210e08"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__seq.html#aedd71f30b38e538b02c93c20bf210e08">xfers_done</a> =0</td></tr>
<tr class="separator:aedd71f30b38e538b02c93c20bf210e08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e081ffeeb0b6ee993973c75439b5614"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmemory.html">memory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__seq.html#a9e081ffeeb0b6ee993973c75439b5614">m_memory</a></td></tr>
<tr class="separator:a9e081ffeeb0b6ee993973c75439b5614"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Backdoor memory writes, then reads from memory over AXI. </p>
<p>Reads are pipelined so multiple in flight at once.</p>
<p>miscompares are flagged. </p>

<p>Definition at line <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00035">35</a> of file <a class="el" href="axi__pipelined__reads__seq_8svh_source.html">axi_pipelined_reads_seq.svh</a>.</p>
</div><hr/><h2 class="groupheader">Class Documentation</h2>
<a name="structaxi__pipelined__reads__seq_1_1mem__chk__s" id="structaxi__pipelined__reads__seq_1_1mem__chk__s"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct axi_pipelined_reads_seq::mem_chk_s</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock">
<p>Definition at line <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00048">48</a> of file <a class="el" href="axi__pipelined__reads__seq_8svh_source.html">axi_pipelined_reads_seq.svh</a>.</p>
</div><table class="fieldtable">
<tr><th colspan="3">Class Members</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a19fa2d949b9142d7b1be5627139d8a37"></a>bit&lt; <a class="el" href="axi__uvm__pkg_8sv.html#a137c0955e8f91047325731db53b341bf">ADDR_WIDTH</a>-1:0 &gt;</td>
<td class="fieldname">
laddr</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a4a4cc220904c7521798e589ce4476dd1"></a>bit&lt; <a class="el" href="axi__uvm__pkg_8sv.html#a137c0955e8f91047325731db53b341bf">ADDR_WIDTH</a>-1:0 &gt;</td>
<td class="fieldname">
uaddr</td>
<td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a3e895a6b63903816945053861cd6a86d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">task axi_pipelined_reads_seq::body </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Does all the work. </p>
<ol type="1">
<li>Creates constrained random AXI write packet</li>
<li>Sends it</li>
<li>Backdoor read of memory to verify correctly written</li>
<li>Creates constrained random AXI read packet with same len and address as write packet</li>
<li>Sends it</li>
<li><p class="startli">Verifies read back data with written data.</p>
<p class="startli">two modes: Serial, Write_addr, then write, then resp. Repeat Parallel - Multiple write_adr, then multiple write_data, then multiple resp, repeat </p>
</li>
</ol>

<p>Definition at line <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00140">140</a> of file <a class="el" href="axi__pipelined__reads__seq_8svh_source.html">axi_pipelined_reads_seq.svh</a>.</p>

<p>References <a class="el" href="axi__uvm__pkg_8sv_source.html#l00039">ADDR_WIDTH</a>, <a class="el" href="axi__pkg_8sv_source.html#l00320">calculate_axlen()</a>, <a class="el" href="axi__pkg_8sv_source.html#l00089">e_FIXED</a>, <a class="el" href="axi__pkg_8sv_source.html#l00090">e_INCR</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00058">e_READ</a>, <a class="el" href="axi__pkg_8sv_source.html#l00091">e_WRAP</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00040">ID_WIDTH</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00049">axi_pipelined_reads_seq::mem_chk_s::laddr</a>, <a class="el" href="axi__seq_8svh_source.html#l00048">axi_seq::m_memory</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00053">mem_chk_array</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00045">reads_done</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00041">transaction_id</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00050">axi_pipelined_reads_seq::mem_chk_s::uaddr</a>, <a class="el" href="axi__seq_8svh_source.html#l00042">axi_seq::valid</a>, <a class="el" href="axi__seq_8svh_source.html#l00039">axi_seq::window_size</a>, <a class="el" href="memory_8svh_source.html#l00058">memory::write()</a>, <a class="el" href="axi__seq_8svh_source.html#l00046">axi_seq::xfers_done</a>, and <a class="el" href="axi__seq_8svh_source.html#l00040">axi_seq::xfers_to_send</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__pipelined__reads__seq_a3e895a6b63903816945053861cd6a86d_cgraph.png" border="0" usemap="#classaxi__pipelined__reads__seq_a3e895a6b63903816945053861cd6a86d_cgraph" alt=""/></div>
<map name="classaxi__pipelined__reads__seq_a3e895a6b63903816945053861cd6a86d_cgraph" id="classaxi__pipelined__reads__seq_a3e895a6b63903816945053861cd6a86d_cgraph">
<area shape="rect" id="node2" href="axi__pkg_8sv.html#afbfbf7a50bf6dabae3804e39d05434b1" title="calculate awlen or arlen " alt="" coords="189,13,301,39"/>
<area shape="rect" id="node4" href="classmemory.html#a244362130b448b6842b19d6951304b51" title="Writes into memory. " alt="" coords="193,63,298,90"/>
<area shape="rect" id="node3" href="axi__pkg_8sv.html#a1bb88ba6ed9a3a081a64f90042a681b5" title="calculate how unaligned the address is from the burst size " alt="" coords="349,5,500,47"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a3e1d96cf1d872bcc860464bfbc72c8e1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bit axi_seq::compare_items </td>
          <td>(</td>
          <td class="paramtype">ref <a class="el" href="classaxi__seq__item.html">axi_seq_item</a>&#160;</td>
          <td class="paramname"><em>write_item</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ref <a class="el" href="classaxi__seq__item.html">axi_seq_item</a>&#160;</td>
          <td class="paramname"><em>read_item</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compares the write-item with the corresponding read_item. </p>
<p>THis isn't the same as a do_compare() method in the <a class="el" href="classaxi__seq__item.html" title="contains all data and functions related to axi and usage ">axi_seq_item</a> because the readback is depenent on which burst_type Although it could probably exist as aseperate method in the seqitem. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">write_item</td><td>- the original item </td></tr>
    <tr><td class="paramname">read_item</td><td>- the item after memory readback </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if no miscompares, false if miscompares </dd></dl>
<p>........................ </p>

<p>Definition at line <a class="el" href="axi__seq_8svh_source.html#l00115">115</a> of file <a class="el" href="axi__seq_8svh_source.html">axi_seq.svh</a>.</p>

<p>References <a class="el" href="axi__pkg_8sv_source.html#l00089">e_FIXED</a>, <a class="el" href="axi__pkg_8sv_source.html#l00090">e_INCR</a>, <a class="el" href="axi__pkg_8sv_source.html#l00091">e_WRAP</a>, and <a class="el" href="axi__seq_8svh_source.html#l00044">axi_seq::max_burst_size</a>.</p>

</div>
</div>
<a class="anchor" id="a5b7fbcc8488d3c4cc3014039bc5f52ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axi_pipelined_reads_seq::new </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>name</em> = <code>&quot;axi_pipelined_reads_seq&quot;</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>
<p>Doesn't actually do anything except call parent constructor </p>

<p>Definition at line <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00122">122</a> of file <a class="el" href="axi__pipelined__reads__seq_8svh_source.html">axi_pipelined_reads_seq.svh</a>.</p>

</div>
</div>
<a class="anchor" id="ae6716084f233f4a79b6ef376feb63673"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">automatic void axi_pipelined_reads_seq::response_handler </td>
          <td>(</td>
          <td class="paramtype">uvm_sequence_item&#160;</td>
          <td class="paramname"><em>response</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Handles write responses, including verifying memory via backdoor reads. </p>

<p>Definition at line <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00066">66</a> of file <a class="el" href="axi__pipelined__reads__seq_8svh_source.html">axi_pipelined_reads_seq.svh</a>.</p>

<p>References <a class="el" href="axi__uvm__pkg_8sv_source.html#l00039">ADDR_WIDTH</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00071">axi_seq_item::cmd</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00288">axi_seq_item::convert2string()</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00059">e_READ_DATA</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00047">axi_seq_item::id</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00049">axi_pipelined_reads_seq::mem_chk_s::laddr</a>, <a class="el" href="axi__seq_8svh_source.html#l00048">axi_seq::m_memory</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00053">mem_chk_array</a>, <a class="el" href="memory_8svh_source.html#l00085">memory::seq_item_check()</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00050">axi_pipelined_reads_seq::mem_chk_s::uaddr</a>, <a class="el" href="axi__seq_8svh_source.html#l00046">axi_seq::xfers_done</a>, and <a class="el" href="axi__seq_8svh_source.html#l00040">axi_seq::xfers_to_send</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__pipelined__reads__seq_ae6716084f233f4a79b6ef376feb63673_cgraph.png" border="0" usemap="#classaxi__pipelined__reads__seq_ae6716084f233f4a79b6ef376feb63673_cgraph" alt=""/></div>
<map name="classaxi__pipelined__reads__seq_ae6716084f233f4a79b6ef376feb63673_cgraph" id="classaxi__pipelined__reads__seq_ae6716084f233f4a79b6ef376feb63673_cgraph">
<area shape="rect" id="node2" href="classaxi__seq__item.html#a510d32edb7887045a31a308bc7198c46" title="Convert item&#39;s variable into one printable string. " alt="" coords="213,5,403,32"/>
<area shape="rect" id="node3" href="classmemory.html#aeddbe841fa4fb8a4342923b1abe4bd23" title="Compares an axi_seq_item&#39;s data and burst_type against expected matching memory contents. " alt="" coords="222,56,394,83"/>
<area shape="rect" id="node4" href="axi__pkg_8sv.html#afbfbf7a50bf6dabae3804e39d05434b1" title="calculate awlen or arlen " alt="" coords="451,31,563,57"/>
<area shape="rect" id="node6" href="classmemory.html#ab676c74a01283bf843f4a31f632d36b1" title="Reads from memory. " alt="" coords="455,81,558,108"/>
<area shape="rect" id="node5" href="axi__pkg_8sv.html#a1bb88ba6ed9a3a081a64f90042a681b5" title="calculate how unaligned the address is from the burst size " alt="" coords="611,23,761,65"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="acce4aa5766828b5f16357fef3be9619b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void axi_seq::set_transaction_count </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>How many transactions? </p>
<p>This method sets how many transactions to send (Write Address, Write Data, Write Response) is one traction (Read Address, Read Data) is one transaction </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">count</td><td>- how many transactions to send </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="axi__seq_8svh_source.html#l00092">92</a> of file <a class="el" href="axi__seq_8svh_source.html">axi_seq.svh</a>.</p>

<p>References <a class="el" href="axi__seq_8svh_source.html#l00040">axi_seq::xfers_to_send</a>.</p>

<p>Referenced by <a class="el" href="axi__base__test_8svh_source.html#l00049">axi_base_test::build_phase()</a>.</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__seq_acce4aa5766828b5f16357fef3be9619b_icgraph.png" border="0" usemap="#classaxi__seq_acce4aa5766828b5f16357fef3be9619b_icgraph" alt=""/></div>
<map name="classaxi__seq_acce4aa5766828b5f16357fef3be9619b_icgraph" id="classaxi__seq_acce4aa5766828b5f16357fef3be9619b_icgraph">
<area shape="rect" id="node2" href="classaxi__base__test.html#aafeae2a4e4ad4c00b421b87001272ffd" title="axi_base_test::build\l_phase" alt="" coords="217,5,356,47"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a0a6500dac2eb76a6f61b6b8190abbf3c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">axi_seq::uvm_object_utils </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classaxi__seq.html">axi_seq</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a923c6805e7e52ab4c7b8c4949d759f52"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axi_pipelined_reads_seq::uvm_object_utils </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classaxi__pipelined__reads__seq.html">axi_pipelined_reads_seq</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a9e081ffeeb0b6ee993973c75439b5614"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmemory.html">memory</a> axi_seq::m_memory</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__seq_8svh_source.html#l00048">48</a> of file <a class="el" href="axi__seq_8svh_source.html">axi_seq.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__sequential__reads__seq_8svh_source.html#l00064">axi_sequential_reads_seq::body()</a>, <a class="el" href="axi__sequential__writes__seq_8svh_source.html#l00059">axi_sequential_writes_seq::body()</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00140">body()</a>, <a class="el" href="axi__pipelined__writes__seq_8svh_source.html#l00131">axi_pipelined_writes_seq::body()</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00066">response_handler()</a>, and <a class="el" href="axi__pipelined__writes__seq_8svh_source.html#l00067">axi_pipelined_writes_seq::response_handler()</a>.</p>

</div>
</div>
<a class="anchor" id="aeeb48cb95c098c51ae3aada90ecd50e2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bit&lt;2:0&gt; axi_seq::max_burst_size</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__seq_8svh_source.html#l00044">44</a> of file <a class="el" href="axi__seq_8svh_source.html">axi_seq.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__seq_8svh_source.html#l00115">axi_seq::compare_items()</a>, and <a class="el" href="axi__seq_8svh_source.html#l00062">axi_seq::new()</a>.</p>

</div>
</div>
<a class="anchor" id="aba53dc6840f1df556bb3f96211da2bda"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classaxi__pipelined__reads__seq.html#structaxi__pipelined__reads__seq_1_1mem__chk__s">mem_chk_s</a> axi_pipelined_reads_seq::mem_chk_array[*]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00053">53</a> of file <a class="el" href="axi__pipelined__reads__seq_8svh_source.html">axi_pipelined_reads_seq.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00140">body()</a>, and <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00066">response_handler()</a>.</p>

</div>
</div>
<a class="anchor" id="af73ced115f89c70852afebdf85ca90c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">event axi_pipelined_reads_seq::reads_done</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00045">45</a> of file <a class="el" href="axi__pipelined__reads__seq_8svh_source.html">axi_pipelined_reads_seq.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00140">body()</a>.</p>

</div>
</div>
<a class="anchor" id="a5ab66fa2f78ef1e5f6410b1083f5724b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int axi_pipelined_reads_seq::transaction_id</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00041">41</a> of file <a class="el" href="axi__pipelined__reads__seq_8svh_source.html">axi_pipelined_reads_seq.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00140">body()</a>.</p>

</div>
</div>
<a class="anchor" id="ad32f714b2d472244aad98f0c7fd5018b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bit axi_seq::valid[]</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__seq_8svh_source.html#l00042">42</a> of file <a class="el" href="axi__seq_8svh_source.html">axi_seq.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__sequential__writes__seq_8svh_source.html#l00059">axi_sequential_writes_seq::body()</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00140">body()</a>, and <a class="el" href="axi__pipelined__writes__seq_8svh_source.html#l00131">axi_pipelined_writes_seq::body()</a>.</p>

</div>
</div>
<a class="anchor" id="a35e2ef3dac762ca6cebfb3e7fee1fe8d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const int axi_seq::window_size = 0x1_0000</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__seq_8svh_source.html#l00039">39</a> of file <a class="el" href="axi__seq_8svh_source.html">axi_seq.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__sequential__reads__seq_8svh_source.html#l00064">axi_sequential_reads_seq::body()</a>, <a class="el" href="axi__sequential__writes__seq_8svh_source.html#l00059">axi_sequential_writes_seq::body()</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00140">body()</a>, and <a class="el" href="axi__pipelined__writes__seq_8svh_source.html#l00131">axi_pipelined_writes_seq::body()</a>.</p>

</div>
</div>
<a class="anchor" id="aedd71f30b38e538b02c93c20bf210e08"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int axi_seq::xfers_done =0</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__seq_8svh_source.html#l00046">46</a> of file <a class="el" href="axi__seq_8svh_source.html">axi_seq.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__sequential__reads__seq_8svh_source.html#l00064">axi_sequential_reads_seq::body()</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00140">body()</a>, <a class="el" href="axi__pipelined__writes__seq_8svh_source.html#l00131">axi_pipelined_writes_seq::body()</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00066">response_handler()</a>, and <a class="el" href="axi__pipelined__writes__seq_8svh_source.html#l00067">axi_pipelined_writes_seq::response_handler()</a>.</p>

</div>
</div>
<a class="anchor" id="a2e8ea36ae847bab553e4b01c85a18f32"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int axi_seq::xfers_to_send = 1</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__seq_8svh_source.html#l00040">40</a> of file <a class="el" href="axi__seq_8svh_source.html">axi_seq.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__sequential__reads__seq_8svh_source.html#l00064">axi_sequential_reads_seq::body()</a>, <a class="el" href="axi__sequential__writes__seq_8svh_source.html#l00059">axi_sequential_writes_seq::body()</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00140">body()</a>, <a class="el" href="axi__pipelined__writes__seq_8svh_source.html#l00131">axi_pipelined_writes_seq::body()</a>, <a class="el" href="axi__pipelined__reads__seq_8svh_source.html#l00066">response_handler()</a>, <a class="el" href="axi__pipelined__writes__seq_8svh_source.html#l00067">axi_pipelined_writes_seq::response_handler()</a>, and <a class="el" href="axi__seq_8svh_source.html#l00092">axi_seq::set_transaction_count()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>tb/<a class="el" href="axi__pipelined__reads__seq_8svh_source.html">axi_pipelined_reads_seq.svh</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
